As a ubiquitous computing environment has been receiving attention, many researches about adaptive and self-growing agent platforms have been actively progressed. Ubiquitous means being everywhere at the same time. That is, a ubiquitous computing environment denotes an environment that allows users to freely access a network without having temporal and spatial restrictions.
In order to realize the ubiquitous computing environment, it is essential to develop various technologies, for example, technologies for making devices smaller and light-weighted, and a technology for distribution. It is also necessary to embody user friendly interfaces in various forms to recognize facial expression, actions, voices, and body conditions. In order to provide services that a user wants, it is necessary to provide agents that collect diverse information from sensors and computers disposed at various locations and recognize states and conditions of a user and a peripheral environment thereof based on the collected diverse information.
The agents have abilities to effectively perform operations and solve problems by themselves in dynamic and open environment.
An agent in the multi agent system can be defined as a computer program working cooperatively with other agents in dynamic and open environment. An agent autonomously executes its operations and solves the problems. In order to provide more complicated services than independent application programs, an agent solves a problem by working cooperatively with other agents.
Since the typical characteristics of agents are autonomy, intelligence, mobility, and social ability, collaboration of agents may be made without user intervention.
The agent platform needs an agent communication language (ACL) to allow collaboration between the agents registered in different agent platforms and supports community computing by dynamically creating and destroying agent groups using the agent management and discovery system.
Java agent development framework (JADE) is a representative agent platform developed by Telecom Italia Lab which conforms to the FIPA specification which is a foundation for Intelligent Physical Agents.
Supporting the development of MAS is the main goal of JADE. Each agent is a peer that potentially needs to initiate a communication with other agents as well as capable of providing services to the rest of agents.
The communication architecture of the agent platform offers flexible and efficient messaging. It includes two main products; a FIPA-compliant agent platform and package used to develop Java agents.
FIPA, the international standardization group for agents, presents an agent communication language (ACL), which is used for communication between agents. The FIPA ACL ensures interoperability through a macro. The FIPA ACL provides processes defined as a set of communicative acts.
FIPA is an IEEE computer society standard for supporting an agent-base technology and interoperability with other systems. If two or more systems use different technologies to achieve a goal, it is necessary to identify the common characteristics of various approaches. FIPA has shown a solution for this problem.
The primary focus of FIPA is to create semantically meaningful message exchange between the agents which may be using different messaging transport ACT, or content languages. A FIPA ACL message contains a set of one or more message parameters.
TABLE 1Category of ParametersParameterType of communicativePerformativeactsParticipant insender, receiver, reply-tocommunicationContent of messageContentDescription of contentlanguage, encoding, ontologyControl ofprotocol, conversation-id,conversationreply-with, in-reply-to,reply-by
As shown in Table 1, all sets of message parameters included in FIPA ACL are prepared for communication between agents.
The performative parameter denotes the type of the communicative act of the ACL message. The participant as a sender, receiver, and reply-to parameter denotes the identity of the participants in the message or the subsequent messages. Also, it is possible to detect a message type by determining which operation a message is made for through analyzing the content of message. Furthermore, it is possible to detect a language of contents, an encoding scheme, and an otology through description of content. Moreover, it is possible to detect a protocol, a conversation progressing order (conversation-id), whether an agent receives a message or not (reply-with), and a time of receiving a replay message at a transmit agent (in-reply-to) through control of conversation.
FIPA dose not specify any mechanism for handling the condition, and thereof the implementations omitting some message parameters are not guaranteed to operate properly.
FIPA indicates the communicative act expressed by a library such as Accept Proposal, Agree, Cancel, Call for Proposal, Confirm, Disconfirm, Failure, Inform, Inform If, Inform Ref, Not Understood, Propagate, Propose, Proxy, Query If, Query Ref, Refuse, Reject Proposal, Request, Request When, Request Whenever, and Subscribe.
Agents communicate with each other through exchanging messages using one of two following communication types.
First, an agent directly requests a necessary service to another agent in the same platform or a different platform.
Second, request and reply are made through a broker agent as shown in FIG. 1.
As shown in FIG. 1, each of two agent platforms 110 and 120 includes a plurality of agents 111 and 112. Each of the agents 111 and 122 transmits/receives a message through a broker agent 121. The second communication type provides effective message communication by reducing the number of agents transmitting/receiving messages. As described above, one of the most important requirements of the multi agent system is to support effective message communication between agents.